<meta http-equiv="refresh" content="0; URL=noscript.html"> METU | Course Syllabus

Course Information

5710229

2

C PROGRAMMING

4

6.0

C Programming; constants, variables, expressions, statementes; selective structures; repetitive structures and arrays; functions and recursive programming; pointers, strings and multi-dimensional arrays; structures and unions; dynamic memory management; bit-wise operations; file processing. (Offered to non-CENG students only)

No prerequisites

Wednesday, 8:40 - 10:30, U2
Thursday, 15:40 - 17:30, MM-14
Friday, 13:40 - 15:30, MM-14
Thursday , 12:40 - 13:30, G111

Instructor Information

Prof. Dr. TOLGA CAN

B109

by appointment

Prof.Dr. GÖKTÜRK ÜÇOLUK

A408

210 5584

By appointment

Course Objectives

At the end of this course, the students will be able to learn and use the C programming language to design and implement advanced computer programs.

 

To be more specific, at the end of this course, students will be able to:

  • Understand basic data types such as int, float and arrays and understand how different types of data can be represented and used in computational expressions.
  • Differentiate computational evaluation of expressions from mathematical evaluation due to concepts such as overflow, side-effect, and truncation.
  • Understand and apply structured programming concepts by elaborating on sequential, selective, repetitive structures, such as statements, if/switch/case statements, and for/while statements.
  • Understand the run-time behavior of a program in terms of memory management and function execution and apply their knowledge on run-time behavior of a program for effectively determining the outcome of a program.
  • Check the correctness of a given program in terms of compile-time and run-time behavior.
  • Remember and use widely used C standard library functions, such as input/output functions and string functions, in a program.
  • Critique on a code’s readability in terms of variable naming, modularity, indentation.
  • Interpret a computational problem specification and algorithmic solution and implement a solution in C to solve that problem.
  • Construct new composite data types such as 3D Point, Vector using struct and union.
  • Modify an existing solution to a problem to accommodate for extension and/or change of problem specifications.
  • Design a modular solution to a problem by decomposing it into smaller sub-problems.
  • Understand and apply pointer operations and dynamic memory management functions effectively.
  • Understand file operations using standard input/output function for reading and writing files.

Since this course is offered exclusively to other departments, the link to the program education objectives (PEO) is omitted.

Course Learning Outcomes

The course is going to support the following student outcomes defined in ABET General Criterion 3 for engineering programs:

 

a) an ability to apply knowledge of mathematics, science, and engineering

b) an ability to design and conduct experiments, as well as to analyze and interpret data

c) an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health, and safety, manufacturability, and sustainability

d) an ability to function on multidisciplinary teams

e)  an ability to identify, formulate, and solve engineering problems

f) an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice

Instructional Methods

Laboratory work in parallel to lecture. 2 hours of closed lab/week. 

Tentative Weekly Outline

Week Topic Relevant Reading Assignments
1

Introduction and Overview. 

2

Basic types and operations.

3

Operators, expressions and casting. Conditional execution.

4

Conditional and repetitive statements

5

Functions and recursion; modular programming.

6

Arrays and pointers

7

Arrays and pointers (cont'd)

8

Memory management. Call-by-reference. More on pointers.

9

Strings

10

More on strings, arrays and pointers.

11

Structures; Preprocessing.

12

Unions. Bitwise operations.

13

File operations and processing.

14

More on modular programming.

Course Textbook(s)

Programming in ANSI C, Kumar & Agrawal, 1992, 0-314-89563-9

Supplementary Readings / Resources / E-Resources

Readings

Will be announced in lecture

Course Grading

Deliverable Grade Points
Closed lab work 53
Midterm 23
Final 24
Total 100

Information for Students with Disabilities

To obtain disability related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor and the ODTÜ Disability Support Office as soon as possible. If you need any accommodation for this course because of your disabling condition, please contact me. For detailed information, please visit the website of Disability Support Office: http://engelsiz.metu.edu.tr/

Academic Honesty

The METU Honour Code is as follows: "Every member of METU community adopts the following honour code as one of the core principles of academic life and strives to develop an academic environment where continuous adherence to this code is promoted. The members of the METU community are reliable, responsible and honourable people who embrace only the success and recognition they deserve, and act with integrity in their use, evaluation and presentation of facts, data and documents."